package com.mathpractise.dto.response;

import com.mathpractise.model.AnswerDetail;

import java.util.List;

/**
 * 统计报告响应DTO
 */
public class StatisticsReportDTO {
    
    /**
     * 会话ID
     */
    private String sessionId;
    
    /**
     * 总题目数
     */
    private int totalQuestions;
    
    /**
     * 完成题目数量
     */
    private int completedQuestions;
    
    /**
     * 正确题目数
     */
    private int correctAnswers;
    
    /**
     * 正确率
     */
    private double accuracyRate;
    
    /**
     * 平均用时（毫秒）
     */
    private long averageTimeSpent;
    
    /**
     * 错误题目列表
     */
    private List<AnswerDetail> wrongAnswers;
    
    /**
     * 耗时长尾分析结果
     */
    private List<AnswerDetail> timeConsumingOutliers;
    
    public StatisticsReportDTO() {
    }
    
    // Getters and setters
    
    public String getSessionId() {
        return sessionId;
    }
    
    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }
    
    public int getTotalQuestions() {
        return totalQuestions;
    }
    
    public void setTotalQuestions(int totalQuestions) {
        this.totalQuestions = totalQuestions;
    }
    
    public int getCompletedQuestions() {
        return completedQuestions;
    }
    
    public void setCompletedQuestions(int completedQuestions) {
        this.completedQuestions = completedQuestions;
    }
    
    public int getCorrectAnswers() {
        return correctAnswers;
    }
    
    public void setCorrectAnswers(int correctAnswers) {
        this.correctAnswers = correctAnswers;
    }
    
    public double getAccuracyRate() {
        return accuracyRate;
    }
    
    public void setAccuracyRate(double accuracyRate) {
        this.accuracyRate = accuracyRate;
    }
    
    public long getAverageTimeSpent() {
        return averageTimeSpent;
    }
    
    public void setAverageTimeSpent(long averageTimeSpent) {
        this.averageTimeSpent = averageTimeSpent;
    }
    
    public List<AnswerDetail> getWrongAnswers() {
        return wrongAnswers;
    }
    
    public void setWrongAnswers(List<AnswerDetail> wrongAnswers) {
        this.wrongAnswers = wrongAnswers;
    }
    
    public List<AnswerDetail> getTimeConsumingOutliers() {
        return timeConsumingOutliers;
    }
    
    public void setTimeConsumingOutliers(List<AnswerDetail> timeConsumingOutliers) {
        this.timeConsumingOutliers = timeConsumingOutliers;
    }
}